home *** CD-ROM | disk | FTP | other *** search
/ Your Apple Games Gallery 1 / Your Apple Games Gallery (Side B)(MicroSPARC, Inc.)(1988).do / TRIVIA.FILER.bas < prev    next >
BASIC Source File  |  2021-12-11  |  6KB  |  131 lines

  1. 1  REM **********************
  2. 2  REM *    TRIVIA.FILER    *
  3. 3  REM *  BY SCOTT JACKSON  *
  4. 4  REM * COPYRIGHT (C) 1985 *
  5. 5  REM * BY MICROSPARC, INC *
  6. 6  REM * CONCORD, MA  01742 *
  7. 7  REM **********************
  8. 100 DOS$ =  CHR$(4)
  9. 110  ONERR  GOTO 1050
  10. 120  GOSUB 1120: ONERR  GOTO 1270
  11. 130  TEXT : HOME 
  12. 140  VTAB 1: HTAB (20 -( LEN(SL$)/2)): PRINT SL$: VTAB 4: HTAB 10: PRINT "--- TRIVIA FILER ---"
  13. 150  VTAB 7: PRINT " :1: INPUT QUESTION GROUP"
  14. 160  PRINT : PRINT " :2: EDIT QUESTION GROUP"
  15. 170  PRINT : PRINT " :3: END"
  16. 180  VTAB 20: PRINT "** COPYRIGHT 1985 BY MICROSPARC, INC. **": VTAB 15: INPUT "SELECT OPTION: ";Y$
  17. 190  IF Y$ = "1"  THEN  GOSUB 230
  18. 200  IF Y$ = "2"  THEN  GOSUB 640
  19. 210  IF Y$ = "3"  THEN  HOME : END 
  20. 220  GOTO 130
  21. 230  REM 
  22. 240  IF RN > = 99  THEN  HOME : PRINT  CHR$(7); CHR$(7): PRINT "QUESTION FILE HAS BEEN FILLED.": PRINT : INPUT "PRESS <RETURN> TO CONTINUE: ";Y$: RETURN 
  23. 250  HOME : PRINT "THIS WILL BE RECORD #";RN +1;" OUT OF 99."
  24. 260  FOR I = 1 TO 40: PRINT "-";: NEXT 
  25. 270  VTAB 4: FOR I = 1 TO 4: HTAB 1: PRINT "ANSWER #";I;":": INPUT "";A$(I):A$(I) =  LEFT$(A$(I),35): NEXT 
  26. 280  POKE 34,16: HOME 
  27. 290  FOR I = 1 TO 4: PRINT "QUESTION #";I;":": INPUT "";Q$(I):Q$(I) =  LEFT$(Q$(I),159)
  28. 300  INPUT "CORRECT ANSWER =";C$(I)
  29. 310  IF  VAL(C$(I)) <1  OR  VAL(C$(I)) >4  THEN  PRINT  CHR$(7);: GOTO 300
  30. 320  NEXT 
  31. 330  TEXT : HOME 
  32. 340  FOR I = 1 TO 4: PRINT I;"-> ";A$(I): NEXT 
  33. 350  FOR I = 1 TO 4: PRINT "QUESTION #";I;":  (ANSWER = ";C$(I);")": PRINT Q$(I): NEXT 
  34. 360  POKE  -16368,0: POKE 34,21: HOME 
  35. 370  PRINT : INVERSE : PRINT " CHANGE: <A>NSWER  <Q>UESTION  <RTN> OK ": NORMAL 
  36. 380  INPUT "SELECT: ";Y1$
  37. 390  IF  LEFT$(Y1$,1) = "A"  THEN  GOSUB 480
  38. 400  IF  LEFT$(Y1$,1) = "Q"  THEN  GOSUB 550
  39. 410  IF Y1$ = ""  THEN  TEXT : GOTO 440
  40. 420  PRINT  CHR$(7);
  41. 430  GOTO 330
  42. 440 RN = RN +1: HOME : PRINT "SAVING THIS QUESTION GROUP:"
  43. 450  GOSUB 1150
  44. 460  GOSUB 1180
  45. 470  RETURN 
  46. 480  REM 
  47. 490  POKE  -16368,0
  48. 500  HOME : INPUT "CHANGE ANSWER #";Y$
  49. 510  IF Y$ = ""  THEN  RETURN 
  50. 520  IF  VAL(Y$) <1  OR  VAL(Y$) >4  THEN  PRINT  CHR$(7): GOTO 500
  51. 530  HOME : PRINT "NEW ANSWER #";Y$;":": INPUT "";A$( VAL(Y$)):A$( VAL(Y$)) =  LEFT$(A$( VAL(Y$)),35)
  52. 540  RETURN 
  53. 550  REM 
  54. 560  POKE  -16368,0
  55. 570  HOME : INPUT "CHANGE QUESTION #";Y$
  56. 580  IF Y$ = ""  THEN  RETURN 
  57. 590  IF  VAL(Y$) <1  OR  VAL(Y$) >4  THEN  PRINT  CHR$(7): GOTO 570
  58. 600  HOME : PRINT "NEW QUESTION #";Y$;":": INPUT "";Q$( VAL(Y$)):Q$( VAL(Y$)) =  LEFT$(Q$( VAL(Y$)),159)
  59. 610  INPUT "NEW CORRECT ANSWER =";C$( VAL(Y$))
  60. 620  IF  VAL(C$( VAL(Y$))) <1  OR  VAL(C$( VAL(Y$))) >4  THEN  PRINT  CHR$(7): GOTO 610
  61. 630  RETURN 
  62. 640  REM 
  63. 650  HOME : PRINT "INPUT STARTING RECORD NUMBER FOR REVIEW:"
  64. 660  INPUT "";Y$
  65. 670  IF  VAL(Y$) <0  THEN Y$ = "0"
  66. 680  IF  VAL(Y$) >RN  THEN Y$ =  STR$(RN)
  67. 690  IF Y$ = ""  THEN Y$ = "0"
  68. 700 J =  VAL(Y$): FOR I = J TO RN
  69. 710 RI = I: GOSUB 1210
  70. 720  IF RN =  -1  THEN 820
  71. 730  HOME : INVERSE : HTAB 15: PRINT "RECORD #";I: NORMAL 
  72. 740  PRINT : FOR K = 1 TO 4: PRINT K;"-> ";A$(K): NEXT 
  73. 750  PRINT : FOR K = 1 TO 4: PRINT "QUESTION #";K;"   (ANSWER = ";C$(K);")"
  74. 760  PRINT Q$(K): NEXT 
  75. 770  PRINT : INPUT "EDIT THIS GROUP? (<X> TO EXIT): ";Y$
  76. 780  IF Y$ = "X"  THEN TT = RN:RN = I: GOSUB 1150::RN = TT: RETURN 
  77. 790  IF  LEFT$(Y$,1) < >"Y"  THEN 820
  78. 800  GOSUB 840
  79. 810  GOTO 730
  80. 820  NEXT 
  81. 830  RETURN 
  82. 840  REM 
  83. 850  POKE  -16368,0: POKE 34,21: HOME 
  84. 860  PRINT : INVERSE : PRINT " CHANGE: <A>NSWER  <Q>UESTION  <RTN> OK ": NORMAL 
  85. 870  INPUT "SELECT: ";Y1$
  86. 880  IF  LEFT$(Y1$,1) = "A"  THEN  GOSUB 480
  87. 890  IF  LEFT$(Y1$,1) = "Q"  THEN  GOSUB 550
  88. 900  IF Y1$ = ""  THEN  TEXT : GOTO 1010
  89. 910  PRINT  CHR$(7);
  90. 920  TEXT 
  91. 930  HOME : INVERSE : HTAB 15: PRINT "RECORD #";I: NORMAL 
  92. 940  PRINT : FOR K = 1 TO 4: PRINT K;"-> ";A$(K): NEXT 
  93. 950  PRINT : FOR K = 1 TO 4: PRINT "QUESTION #";K;"   (ANSWER =";C$(K);")"
  94. 960  PRINT Q$(K): NEXT 
  95. 970  PRINT : INPUT "EDIT THIS GROUP? (<X> TO EXIT): ";Y$
  96. 980  IF  LEFT$(Y$,1) = "X"  THEN  RETURN 
  97. 990  IF  LEFT$(Y$,1) < >"Y"  THEN 1010
  98. 1000  GOTO 840
  99. 1010  HOME : PRINT "SAVING THIS QUESTION GROUP:"
  100. 1020 TT = RN:RN = I: GOSUB 1150:RN = TT
  101. 1030  RETURN 
  102. 1040  REM INDEX ERROR TRAP
  103. 1050 ER =  PEEK(222): IF ER <22  THEN  PRINT DOS$"CLOSE"
  104. 1060  IF ER < >5  THEN 1320
  105. 1070  PRINT  CHR$(7): PRINT  CHR$(7)
  106. 1080  HOME : PRINT "THERE ARE CURRENTLY NO QUESTIONS SAVED": PRINT "ON THIS DISK.  PLEASE ENTER THE NAME": PRINT "TO BE USED TO LABEL THIS FILE:"
  107. 1090  PRINT : INPUT "";Y$:Y$ =  LEFT$(Y$,38)
  108. 1100 RN =  -1: PRINT DOS$;"OPEN TRIVIA.INDEX": PRINT DOS$;"WRITE TRIVIA.INDEX": PRINT Y$: PRINT RN: PRINT DOS$;"CLOSE TRIVIA.INDEX"
  109. 1110  GOTO 110
  110. 1120  REM 
  111. 1130  PRINT DOS$;"OPEN TRIVIA.INDEX": PRINT DOS$;"READ TRIVIA.INDEX": INPUT SL$: INPUT RN: PRINT DOS$;"CLOSE TRIVIA.INDEX"
  112. 1140  RETURN 
  113. 1150  REM 
  114. 1160  PRINT DOS$;"OPEN TRIVIA.QUES,L800": PRINT DOS$;"WRITE TRIVIA.QUES,R";RN: FOR K = 1 TO 4: PRINT A$(K): NEXT : FOR K = 1 TO 4: PRINT Q$(K): NEXT : FOR K = 1 TO 4: PRINT C$(K): NEXT : PRINT DOS$;"CLOSE TRIVIA.QUES"
  115. 1170  RETURN 
  116. 1180  REM 
  117. 1190  PRINT DOS$;"OPEN TRIVIA.INDEX": PRINT DOS$;"WRITE TRIVIA.INDEX": PRINT SL$: PRINT RN: PRINT DOS$;"CLOSE TRIVIA.INDEX"
  118. 1200  RETURN 
  119. 1210  REM 
  120. 1220  IF RN =  -1  THEN  HOME : PRINT "NO QUESTIONS ON THIS DISK.": PRINT : PRINT "PRESS <RETURN> TO CONTINUE:";: INPUT "";Y$: RETURN 
  121. 1230  PRINT DOS$;"OPEN TRIVIA.QUES,L800": PRINT DOS$;"READ TRIVIA.QUES,R";RI
  122. 1240  FOR K = 1 TO 4: INPUT A$(K): NEXT : FOR K = 1 TO 4: INPUT Q$(K): NEXT : FOR K = 1 TO 4: INPUT C$(K): NEXT 
  123. 1250  PRINT DOS$;"CLOSE TRIVIA.QUES": RETURN 
  124. 1260  REM  ERROR TRAP
  125. 1270 ER =  PEEK(222): IF ER <22  THEN  PRINT DOS$"CLOSE"
  126. 1280  IF ER = 4  THEN  PRINT "DISK WRITE PROTECTED": GOTO 1330
  127. 1290  IF ER = 8  THEN  PRINT "DISK I/O ERROR": GOTO 1330
  128. 1300  IF ER = 9  THEN  PRINT "DISK FULL": GOTO 1330
  129. 1310  IF ER = 10  THEN  PRINT "FILE LOCKED": GOTO 1330
  130. 1320  PRINT "ERROR #";ER" IN LINE "; PEEK(218) + PEEK(219) *256
  131. 1330  PRINT : PRINT "PRESS ANY KEY TO RESTART": GET K$: PRINT : GOTO 110